﻿//    Copyright (C) 2013 Jay Herman

//    This program is free software: you can redistribute it and/or modify
//    it under the terms of the GNU General Public License as published by
//    the Free Software Foundation, either version 3 of the License, or
//    (at your option) any later version.

//    This program is distributed in the hope that it will be useful,
//    but WITHOUT ANY WARRANTY; without even the implied warranty of
//    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
//    GNU General Public License for more details.

//    You should have received a copy of the GNU General Public License
//    along with this program.  If not, see <http://www.gnu.org/licenses/>.

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.IO;
using ORTS.Menu;

namespace APKExtractor
{
    class FolderHelper
    {
        public static bool TryCurrentFolder(string routeFolderName, ref string folder)
        {
            DirectoryInfo tryingFolder = new DirectoryInfo(Directory.GetCurrentDirectory());
            while (tryingFolder != null)
            {
                if (TryFolder( routeFolderName, tryingFolder.ToString() ))
                {
                    folder = tryingFolder.ToString();
                    return true;
                }
                
                tryingFolder = tryingFolder.Parent;
            }
            return false;
        }

        public static bool TryOpenRailsFolder(string routeFolderName, ref string folder)
        {
            foreach (Folder trying in Folder.GetFolders())
            {
                if (TryFolder(routeFolderName, trying.Path))
                {
                    folder = trying.Path;
                    return true;
                }
            }
            return false;
        }

        public static bool TryFolder(string routeFolderName, string folder)
        {
            string routesFolder = Path.Combine(folder, "routes\\" + routeFolderName);
            return Directory.Exists(routesFolder);
        }
    }
}
